package main

import (
	"UserServer/rpc/etc"
	"UserServer/rpc/internal/config"
	"UserServer/rpc/internal/handler"
	"UserServer/rpc/internal/svc"
	"UserServer/rpc/pb"
	"fmt"
	"google.golang.org/grpc"
	"net"
)

func main() {
	// 读取配置文件
	var c config.Config
	config.InitConfig(&c)

	// 异步etcd服务注册
	go etc.RegisterEtcdService(c.Etcd)

	// 获取它的服务内容，也就是一个全局变量
	handler.SC = svc.NewServiceContext(c)

	// 监听端口
	listen, err := net.Listen("tcp", c.Etcd.Address)
	if err != nil {
		panic(err)
	}

	// 创建一个gRPC服务器实例，作为客户端
	// 注册为gRPC服务
	s := grpc.NewServer()
	pb.RegisterJwtServer(s, &handler.JwtServer{})
	pb.RegisterUserServer(s, &handler.UserServer{})

	// 启动服务
	fmt.Println("grpc server running :50051")
	err = s.Serve(listen)
}
